#include <iostream>
using namespace std;

//template<class T>
//void Swap(T x, T y)
//{
//    T tmp=x;
//    x=y;
//    y=tmp;
//}
//
//
//
//int main()
//{
//    int a= 1;
//    int b=2;
//    Swap(a,b);
//    cout<<a<<' '<<b<<endl;
//
//    char d='H';
//    char e='L';
//    Swap(d,e);
//    cout<<d<<' '<<e<<endl;
//
//
//    double  Q =10.2;
//    Swap((int)Q,a);
//    cout<<Q<<' '<<a<<endl;
//    return 0;
//
//    //对于内置类型他会自己推演T的类型
//    本质上其实也是写了不同种类的Swap但是这个操作让编译器去完成了
//}
//
//class Data
//{
//public:
//    Data()
//    :_day(1),
//    next((int *)malloc(sizeof(int)))
//    ,_day(2)//构造列表对一个数据只初始化一次
//    {
//
//    }
//
//private:
//    int _day;
//    int *next;
//
//};
//int main()
//{
////   char pneumonoultramicroscopicsilicovolcanoconiosis= 1;
////   auto& hectic=pneumonoultramicroscopicsilicovolcanoconiosis;
//
//
//
//    //printf("%s",typeid(hectic).name());
//    //cout<<hectic<<endl;
//
//
//    int i =10;
//    auto A=&i;
//    cout<< typeid(A).name()<<endl;
//
//}


//
//int main()
//{
//    int arr[]={1,2,3,4,5,6,7,8,9,0},i;
//    for( i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
//    {
//         cout<<arr[i]<<" ";
//    }
//    cout<<endl;
//    for(int &c:arr)
//    {
//        cout<<c<<" ";
//    }
//    cout<<endl;
//    return 0;
//}


int main()
{
    int* a=new int[10];
    auto c=a;
    cout<<typeid(c).name();
}
